/*
    题目描述：
        给定一个字符串，里面只有a b c 三种字符，要求从头到尾遍历，去掉所有的b和所有ac

    题目要求：
    1. 字符串只能遍历一次
    2. 不能够使用额外的空间
*/

/*
    解题思路：
        （1）空字符串处理，直接返回'';
        （2）遇到b，将字符串前移，遇到c同时判断前面是不是a，是的话前移
        用下标i和j分别记录字符串遍历和前移字符的位数，遍历一遍之后前j位便是删除后的字符串
*/

function fn(s) {
    if (!s) return '';

    let j = -1;
    for (let i = 0; i < s.length; i++) {
        if (s[i] === 'b') {
            continue;
        } else if (s[i] === 'c') {
            if ( j >= 0 && s[j] === 'a') j--; 
            else s[++j] = 'c';
        } else {
            s[++j] = s[i];
        }
    };

    return s.substring(0, j+1);
};

// test
const s1 = 'acbac';  // ''
const s2 = 'aacbcc'; // 'acc'


console.log(fn(s2[-1]));
